{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Contact Matt Rice mrice@brynmawr.edu " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# %load nbgrader_config.py\n", "c = get_config()\n", "c.CourseDirectory.root = '/home/dblank/CS110'\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# %load CS110/nbgrader_config.py\n", "c = get_config()\n", "\n", "###############################################################################\n", "# Begin additions by nbgrader quickstart\n", "###############################################################################\n", "\n", "# You only need this if you are running nbgrader on a shared\n", "# server set up.\n", "c.Exchange.course_id = \"CS110\"\n", "\n", "# Update this list with other assignments you want\n", "c.CourseDirectory.db_assignments = [\n", "# dict(name=\"CS110-Lab1\")\n", "]\n", "\n", "# Change the students in this list with that actual students in\n", "# your course\n", "c.CourseDirectory.db_students = [\n", "# dict(id=\"bitdiddle\", first_name=\"Ben\", last_name=\"Bitdiddle\"),\n", "# dict(id=\"hacker\", first_name=\"Alyssa\", last_name=\"Hacker\"),\n", "# dict(id=\"reasoner\", first_name=\"Louis\", last_name=\"Reasoner\")\n", "]\n", "\n", "# c.IncludeHeaderFooter.header = \"source/header.ipynb\"\n", "\n", "###############################################################################\n", "# End additions by nbgrader quickstart\n", "###############################################################################\n", "\n", "# Configuration file for nbgrader.\n", "\n", "#------------------------------------------------------------------------------\n", "# Application(SingletonConfigurable) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## This is an application.\n", "\n", "## The date format used by logging formatters for %(asctime)s\n", "#c.Application.log_datefmt = '%Y-%m-%d %H:%M:%S'\n", "\n", "## The Logging format template\n", "#c.Application.log_format = '[%(name)s]%(highlevel)s %(message)s'\n", "\n", "## Set the log level by value or name.\n", "#c.Application.log_level = 30\n", "\n", "#------------------------------------------------------------------------------\n", "# JupyterApp(Application) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Base class for Jupyter applications\n", "\n", "## Answer yes to any prompts.\n", "#c.JupyterApp.answer_yes = False\n", "\n", "## Full path of a config file.\n", "#c.JupyterApp.config_file = ''\n", "\n", "## Specify a config file to load.\n", "#c.JupyterApp.config_file_name = ''\n", "\n", "## Generate default config file.\n", "#c.JupyterApp.generate_config = False\n", "\n", "#------------------------------------------------------------------------------\n", "# NbGrader(JupyterApp) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## A base class for all the nbgrader apps.\n", "\n", "## Name of the logfile to log to.\n", "#c.NbGrader.logfile = '.nbgrader.log'\n", "\n", "#------------------------------------------------------------------------------\n", "# NbGraderApp(NbGrader) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "#------------------------------------------------------------------------------\n", "# CourseDirectory(LoggingConfigurable) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## The assignment name. This MUST be specified, either by setting the config\n", "# option, passing an argument on the command line, or using the --assignment\n", "# option on the command line.\n", "#c.CourseDirectory.assignment_id = ''\n", "\n", "## The name of the directory that contains assignment submissions after they have\n", "# been autograded. This corresponds to the `nbgrader_step` variable in the\n", "# `directory_structure` config option.\n", "#c.CourseDirectory.autograded_directory = 'autograded'\n", "\n", "## A list of assignments that will be created in the database. Each item in the\n", "# list should be a dictionary with the following keys:\n", "# \n", "# - name\n", "# - duedate (optional)\n", "# \n", "# The values will be stored in the database. Please see the API documentation on\n", "# the `Assignment` database model for details on these fields.\n", "#c.CourseDirectory.db_assignments = []\n", "\n", "## A list of student that will be created in the database. Each item in the list\n", "# should be a dictionary with the following keys:\n", "# \n", "# - id\n", "# - first_name (optional)\n", "# - last_name (optional)\n", "# - email (optional)\n", "# \n", "# The values will be stored in the database. Please see the API documentation on\n", "# the `Student` database model for details on these fields.\n", "#c.CourseDirectory.db_students = []\n", "\n", "## URL to the database. Defaults to sqlite:////gradebook.db, where \n", "# is another configurable variable.\n", "#c.CourseDirectory.db_url = ''\n", "\n", "## Format string for the directory structure that nbgrader works over during the\n", "# grading process. This MUST contain named keys for 'nbgrader_step',\n", "# 'student_id', and 'assignment_id'. It SHOULD NOT contain a key for\n", "# 'notebook_id', as this will be automatically joined with the rest of the path.\n", "#c.CourseDirectory.directory_structure = '{nbgrader_step}/{student_id}/{assignment_id}'\n", "\n", "## The name of the directory that contains assignment feedback after grading has\n", "# been completed. This corresponds to the `nbgrader_step` variable in the\n", "# `directory_structure` config option.\n", "#c.CourseDirectory.feedback_directory = 'feedback'\n", "\n", "## List of file names or file globs to be ignored when copying directories.\n", "#c.CourseDirectory.ignore = ['.ipynb_checkpoints', '*.pyc', '__pycache__']\n", "\n", "## File glob to match notebook names, excluding the '.ipynb' extension. This can\n", "# be changed to filter by notebook.\n", "#c.CourseDirectory.notebook_id = '*'\n", "\n", "## The name of the directory that contains the version of the assignment that\n", "# will be released to students. This corresponds to the `nbgrader_step` variable\n", "# in the `directory_structure` config option.\n", "#c.CourseDirectory.release_directory = 'release'\n", "\n", "## The root directory for the course files (that includes the `source`,\n", "# `release`, `submitted`, `autograded`, etc. directories). Defaults to the\n", "# current working directory.\n", "#c.CourseDirectory.root = ''\n", "\n", "## The name of the directory that contains the master/instructor version of\n", "# assignments. This corresponds to the `nbgrader_step` variable in the\n", "# `directory_structure` config option.\n", "#c.CourseDirectory.source_directory = 'source'\n", "\n", "## File glob to match student IDs. This can be changed to filter by student.\n", "# Note: this is always changed to '.' when running `nbgrader assign`, as the\n", "# assign step doesn't have any student ID associated with it.\n", "# \n", "# If the ID is purely numeric and you are passing it as a flag on the command\n", "# line, you will need to escape the quotes in order to have it detected as a\n", "# string, for example `--student=\"\"12345\"\"`. See:\n", "# \n", "# https://github.com/jupyter/nbgrader/issues/743\n", "# \n", "# for more details.\n", "#c.CourseDirectory.student_id = '*'\n", "\n", "## The name of the directory that contains assignments that have been submitted\n", "# by students for grading. This corresponds to the `nbgrader_step` variable in\n", "# the `directory_structure` config option.\n", "#c.CourseDirectory.submitted_directory = 'submitted'\n", "\n", "#------------------------------------------------------------------------------\n", "# AssignApp(NbGrader) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "#------------------------------------------------------------------------------\n", "# AutogradeApp(NbGrader) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "#------------------------------------------------------------------------------\n", "# FormgradeApp(NbGrader) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "#------------------------------------------------------------------------------\n", "# FeedbackApp(NbGrader) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "#------------------------------------------------------------------------------\n", "# ValidateApp(NbGrader) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "#------------------------------------------------------------------------------\n", "# ReleaseApp(NbGrader) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "#------------------------------------------------------------------------------\n", "# CollectApp(NbGrader) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "#------------------------------------------------------------------------------\n", "# ZipCollectApp(NbGrader) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## The name of the directory that contains assignment submission files and/or\n", "# archives (zip) files manually downloaded from a LMS. This corresponds to the\n", "# `collect_step` variable in the `collect_structure` config option.\n", "#c.ZipCollectApp.archive_directory = 'archive'\n", "\n", "## Format string for the directory structure that nbgrader works over during the\n", "# zip collect process. This MUST contain named keys for 'downloaded',\n", "# 'assignment_id', and 'collect_step'.\n", "#c.ZipCollectApp.collect_directory_structure = '{downloaded}/{assignment_id}/{collect_step}'\n", "\n", "## The plugin class for processing the submitted file names after they have been\n", "# extracted into the `extracted_directory`.\n", "#c.ZipCollectApp.collector_plugin = 'nbgrader.plugins.zipcollect.FileNameCollectorPlugin'\n", "\n", "## The main directory that corresponds to the `downloaded` variable in the\n", "# `collect_structure` config option.\n", "#c.ZipCollectApp.downloaded_directory = 'downloaded'\n", "\n", "## The name of the directory that contains assignment submission files extracted\n", "# or copied from the `archive_directory`. This corresponds to the `collect_step`\n", "# variable in the `collect_structure` config option.\n", "#c.ZipCollectApp.extracted_directory = 'extracted'\n", "\n", "## The plugin class for extracting the archive files in the `archive_directory`.\n", "#c.ZipCollectApp.extractor_plugin = 'nbgrader.plugins.zipcollect.ExtractorPlugin'\n", "\n", "## Force overwrite of existing files.\n", "#c.ZipCollectApp.force = False\n", "\n", "## Skip submitted notebooks with invalid names.\n", "#c.ZipCollectApp.strict = False\n", "\n", "#------------------------------------------------------------------------------\n", "# FetchApp(NbGrader) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "#------------------------------------------------------------------------------\n", "# SubmitApp(NbGrader) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "#------------------------------------------------------------------------------\n", "# ListApp(NbGrader) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "#------------------------------------------------------------------------------\n", "# ExtensionApp(NbGrader) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "#------------------------------------------------------------------------------\n", "# QuickStartApp(NbGrader) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Whether to overwrite existing files\n", "#c.QuickStartApp.force = False\n", "\n", "#------------------------------------------------------------------------------\n", "# ExportApp(NbGrader) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## The plugin class for exporting the grades.\n", "#c.ExportApp.plugin_class = 'nbgrader.plugins.export.CsvExportPlugin'\n", "\n", "#------------------------------------------------------------------------------\n", "# DbApp(NbGrader) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "#------------------------------------------------------------------------------\n", "# UpdateApp(NbGrader) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## whether to validate metadata after updating it\n", "#c.UpdateApp.validate = True\n", "\n", "#------------------------------------------------------------------------------\n", "# ExportPlugin(BasePlugin) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Base class for export plugins.\n", "\n", "## destination to export to\n", "#c.ExportPlugin.to = ''\n", "\n", "#------------------------------------------------------------------------------\n", "# CsvExportPlugin(ExportPlugin) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## CSV exporter plugin.\n", "\n", "#------------------------------------------------------------------------------\n", "# ExtractorPlugin(BasePlugin) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Submission archive files extractor plugin for the\n", "# :class:`~nbgrader.apps.zipcollectapp.ZipCollectApp`. Extractor plugin\n", "# subclasses MUST inherit from this class.\n", "\n", "## Force overwrite of existing files.\n", "#c.ExtractorPlugin.force = False\n", "\n", "## List of valid archive (zip) filename extensions to extract. Any archive (zip)\n", "# files with an extension not in this list are copied to the\n", "# `extracted_directory`.\n", "#c.ExtractorPlugin.zip_ext = ['.zip', '.gz']\n", "\n", "#------------------------------------------------------------------------------\n", "# FileNameCollectorPlugin(BasePlugin) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Submission filename collector plugin for the\n", "# :class:`~nbgrader.apps.zipcollectapp.ZipCollectApp`. Collect plugin subclasses\n", "# MUST inherit from this class.\n", "\n", "## This regular expression is applied to each submission filename and MUST be\n", "# supplied by the instructor. This regular expression MUST provide the\n", "# `(?P...)` and `(?P...)` named group expressions.\n", "# Optionally this regular expression can also provide the `(?P...)`,\n", "# `(?P...)`, `(?P...)`, and `(?P...)` named group\n", "# expressions. For example if the filename is:\n", "# \n", "# `ps1_bitdiddle_attempt_2016-01-30-15-00-00_problem1.ipynb`\n", "# \n", "# then this `named_regexp` could be:\n", "# \n", "# \".*_(?P\\w+)_attempt_(?P[0-9\\-]+)_(?P\\w+)\"\n", "# \n", "# For named group regular expression examples see\n", "# https://docs.python.org/howto/regex.html\n", "#c.FileNameCollectorPlugin.named_regexp = ''\n", "\n", "## List of valid submission filename extensions to collect. Any submitted file\n", "# with an extension not in this list is skipped.\n", "#c.FileNameCollectorPlugin.valid_ext = ['.ipynb']\n", "\n", "#------------------------------------------------------------------------------\n", "# LateSubmissionPlugin(BasePlugin) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Predefined methods for assigning penalties for late submission\n", "\n", "## The method for assigning late submission penalties:\n", "# 'none': do nothing (no penalty assigned)\n", "# 'zero': assign an overall score of zero (penalty = score)\n", "#c.LateSubmissionPlugin.penalty_method = 'none'\n", "\n", "#------------------------------------------------------------------------------\n", "# NbConvertBase(LoggingConfigurable) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Global configurable class for shared config\n", "# \n", "# Useful for display data priority that might be used by many transformers\n", "\n", "## Deprecated default highlight language as of 5.0, please use language_info\n", "# metadata instead\n", "#c.NbConvertBase.default_language = 'ipython'\n", "\n", "## An ordered list of preferred output type, the first encountered will usually\n", "# be used when converting discarding the others.\n", "#c.NbConvertBase.display_data_priority = ['text/html', 'application/pdf', 'text/latex', 'image/svg+xml', 'image/png', 'image/jpeg', 'text/markdown', 'text/plain']\n", "\n", "#------------------------------------------------------------------------------\n", "# Preprocessor(NbConvertBase) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## A configurable preprocessor\n", "# \n", "# Inherit from this class if you wish to have configurability for your\n", "# preprocessor.\n", "# \n", "# Any configurable traitlets this class exposed will be configurable in profiles\n", "# using c.SubClassName.attribute = value\n", "# \n", "# you can overwrite :meth:`preprocess_cell` to apply a transformation\n", "# independently on each cell or :meth:`preprocess` if you prefer your own logic.\n", "# See corresponding docstring for informations.\n", "# \n", "# Disabled by default and can be enabled via the config by\n", "# 'c.YourPreprocessorName.enabled = True'\n", "\n", "## \n", "#c.Preprocessor.enabled = False\n", "\n", "#------------------------------------------------------------------------------\n", "# NbGraderPreprocessor(Preprocessor) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Whether to use this preprocessor when running nbgrader\n", "#c.NbGraderPreprocessor.enabled = True\n", "\n", "#------------------------------------------------------------------------------\n", "# AssignLatePenalties(NbGraderPreprocessor) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Preprocessor for assigning penalties for late submissions to the database\n", "\n", "## The plugin class for assigning the late penalty for each notebook.\n", "#c.AssignLatePenalties.plugin_class = 'nbgrader.plugins.latesubmission.LateSubmissionPlugin'\n", "\n", "#------------------------------------------------------------------------------\n", "# IncludeHeaderFooter(NbGraderPreprocessor) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## A preprocessor for adding header and/or footer cells to a notebook.\n", "\n", "## Path to footer notebook, relative to the root of the course directory\n", "#c.IncludeHeaderFooter.footer = ''\n", "\n", "## Path to header notebook, relative to the root of the course directory\n", "#c.IncludeHeaderFooter.header = ''\n", "\n", "#------------------------------------------------------------------------------\n", "# LockCells(NbGraderPreprocessor) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## A preprocessor for making cells undeletable.\n", "\n", "## Whether all assignment cells are locked (non-deletable and non-editable)\n", "#c.LockCells.lock_all_cells = False\n", "\n", "## Whether grade cells are locked (non-deletable)\n", "#c.LockCells.lock_grade_cells = True\n", "\n", "## Whether readonly cells are locked (non-deletable and non-editable)\n", "#c.LockCells.lock_readonly_cells = True\n", "\n", "## Whether solution cells are locked (non-deletable and non-editable)\n", "#c.LockCells.lock_solution_cells = True\n", "\n", "#------------------------------------------------------------------------------\n", "# ClearSolutions(NbGraderPreprocessor) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## The delimiter marking the beginning of a solution\n", "c.ClearSolutions.begin_solution_delimeter = '// BEGIN SOLUTION'\n", "\n", "## The code snippet that will replace code solutions\n", "c.ClearSolutions.code_stub = {'python': '# YOUR CODE HERE\\nraise NotImplementedError()',\n", " 'java': '// YOUR CODE HERE'}\n", "\n", "## The delimiter marking the end of a solution\n", "c.ClearSolutions.end_solution_delimeter = '// END SOLUTION'\n", "\n", "## Whether or not to complain if cells containing solutions regions are not\n", "# marked as solution cells. WARNING: this will potentially cause things to break\n", "# if you are using the full nbgrader pipeline. ONLY disable this option if you\n", "# are only ever planning to use nbgrader assign.\n", "#c.ClearSolutions.enforce_metadata = True\n", "\n", "## The text snippet that will replace written solutions\n", "c.ClearSolutions.text_stub = 'YOUR ANSWER HERE'\n", "\n", "#------------------------------------------------------------------------------\n", "# SaveAutoGrades(NbGraderPreprocessor) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Preprocessor for saving out the autograder grades into a database\n", "\n", "#------------------------------------------------------------------------------\n", "# ComputeChecksums(NbGraderPreprocessor) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## A preprocessor to compute checksums of grade cells.\n", "\n", "#------------------------------------------------------------------------------\n", "# SaveCells(NbGraderPreprocessor) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## A preprocessor to save information about grade and solution cells.\n", "\n", "#------------------------------------------------------------------------------\n", "# OverwriteCells(NbGraderPreprocessor) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## A preprocessor to overwrite information about grade and solution cells.\n", "\n", "#------------------------------------------------------------------------------\n", "# CheckCellMetadata(NbGraderPreprocessor) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## A preprocessor for checking that grade ids are unique.\n", "\n", "#------------------------------------------------------------------------------\n", "# ExecutePreprocessor(Preprocessor) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Executes all the cells in a notebook\n", "\n", "## If `False` (default), when a cell raises an error the execution is stopped and\n", "# a `CellExecutionError` is raised. If `True`, execution errors are ignored and\n", "# the execution is continued until the end of the notebook. Output from\n", "# exceptions is included in the cell output in both cases.\n", "#c.ExecutePreprocessor.allow_errors = False\n", "\n", "## If execution of a cell times out, interrupt the kernel and continue executing\n", "# other cells rather than throwing an error and stopping.\n", "#c.ExecutePreprocessor.interrupt_on_timeout = False\n", "\n", "## The time to wait (in seconds) for IOPub output. This generally doesn't need to\n", "# be set, but on some slow networks (such as CI systems) the default timeout\n", "# might not be long enough to get all messages.\n", "#c.ExecutePreprocessor.iopub_timeout = 4\n", "\n", "## The kernel manager class to use.\n", "#c.ExecutePreprocessor.kernel_manager_class = 'jupyter_client.manager.KernelManager'\n", "\n", "## Name of kernel to use to execute the cells. If not set, use the kernel_spec\n", "# embedded in the notebook.\n", "#c.ExecutePreprocessor.kernel_name = ''\n", "\n", "## If `False` (default), then the kernel will continue waiting for iopub messages\n", "# until it receives a kernel idle message, or until a timeout occurs, at which\n", "# point the currently executing cell will be skipped. If `True`, then an error\n", "# will be raised after the first timeout. This option generally does not need to\n", "# be used, but may be useful in contexts where there is the possibility of\n", "# executing notebooks with memory-consuming infinite loops.\n", "#c.ExecutePreprocessor.raise_on_iopub_timeout = False\n", "\n", "## If `graceful` (default), then the kernel is given time to clean up after\n", "# executing all cells, e.g., to execute its `atexit` hooks. If `immediate`, then\n", "# the kernel is signaled to immediately terminate.\n", "#c.ExecutePreprocessor.shutdown_kernel = 'graceful'\n", "\n", "## The time to wait (in seconds) for output from executions. If a cell execution\n", "# takes longer, an exception (TimeoutError on python 3+, RuntimeError on python\n", "# 2) is raised.\n", "# \n", "# `None` or `-1` will disable the timeout. If `timeout_func` is set, it\n", "# overrides `timeout`.\n", "#c.ExecutePreprocessor.timeout = 30\n", "\n", "## A callable which, when given the cell source as input, returns the time to\n", "# wait (in seconds) for output from cell executions. If a cell execution takes\n", "# longer, an exception (TimeoutError on python 3+, RuntimeError on python 2) is\n", "# raised.\n", "# \n", "# Returning `None` or `-1` will disable the timeout for the cell. Not setting\n", "# `timeout_func` will cause the preprocessor to default to using the `timeout`\n", "# trait for all cells. The `timeout_func` trait overrides `timeout` if it is not\n", "# `None`.\n", "#c.ExecutePreprocessor.timeout_func = None\n", "\n", "#------------------------------------------------------------------------------\n", "# Execute(NbGraderPreprocessor,ExecutePreprocessor) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## The number of times to try re-executing the notebook before throwing an error.\n", "# Generally, this shouldn't need to be set, but might be useful for CI\n", "# environments when tests are flaky.\n", "#c.Execute.execute_retries = 0\n", "\n", "## A list of extra arguments to pass to the kernel. For python kernels, this\n", "# defaults to ``--HistoryManager.hist_file=:memory:``. For other kernels this is\n", "# just an empty list.\n", "#c.Execute.extra_arguments = []\n", "\n", "#------------------------------------------------------------------------------\n", "# GetGrades(NbGraderPreprocessor) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Preprocessor for saving grades from the database to the notebook\n", "\n", "## \n", "#c.GetGrades.display_data_priority = ['text/html', 'application/pdf', 'text/latex', 'image/svg+xml', 'image/png', 'image/jpeg', 'text/plain']\n", "\n", "#------------------------------------------------------------------------------\n", "# ClearOutputPreprocessor(Preprocessor) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Removes the output from all code cells in a notebook.\n", "\n", "#------------------------------------------------------------------------------\n", "# ClearOutput(NbGraderPreprocessor,ClearOutputPreprocessor) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "#------------------------------------------------------------------------------\n", "# LimitOutput(NbGraderPreprocessor) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Preprocessor for limiting cell output\n", "\n", "## maximum number of lines of output (-1 means no limit)\n", "#c.LimitOutput.max_lines = 1000\n", "\n", "## maximum number of traceback lines (-1 means no limit)\n", "#c.LimitOutput.max_traceback = 100\n", "\n", "#------------------------------------------------------------------------------\n", "# DeduplicateIds(NbGraderPreprocessor) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## A preprocessor to overwrite information about grade and solution cells.\n", "\n", "#------------------------------------------------------------------------------\n", "# ClearHiddenTests(NbGraderPreprocessor) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## The delimiter marking the beginning of hidden tests cases\n", "#c.ClearHiddenTests.begin_test_delimeter = 'BEGIN HIDDEN TESTS'\n", "\n", "## The delimiter marking the end of hidden tests cases\n", "#c.ClearHiddenTests.end_test_delimeter = 'END HIDDEN TESTS'\n", "\n", "## Whether or not to complain if cells containing hidden test regions are not\n", "# marked as grade cells. WARNING: this will potentially cause things to break if\n", "# you are using the full nbgrader pipeline. ONLY disable this option if you are\n", "# only ever planning to use nbgrader assign.\n", "#c.ClearHiddenTests.enforce_metadata = True\n", "\n", "#------------------------------------------------------------------------------\n", "# OverwriteKernelspec(NbGraderPreprocessor) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## A preprocessor for checking the notebook kernelspec metadata.\n", "\n", "#------------------------------------------------------------------------------\n", "# Exchange(LoggingConfigurable) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Local cache directory for nbgrader submit and nbgrader list. Defaults to\n", "# $JUPYTER_DATA_DIR/nbgrader_cache\n", "#c.Exchange.cache = ''\n", "\n", "## A key that is unique per instructor and course. This MUST be specified, either\n", "# by setting the config option, or using the --course option on the command\n", "# line.\n", "#c.Exchange.course_id = ''\n", "\n", "## Whether the path for fetching/submitting assignments should be prefixed with\n", "# the course name. If this is `False`, then the path will be something like\n", "# `./ps1`. If this is `True`, then the path will be something like\n", "# `./course123/ps1`.\n", "#c.Exchange.path_includes_course = False\n", "\n", "## The nbgrader exchange directory writable to everyone. MUST be preexisting.\n", "#c.Exchange.root = '/srv/nbgrader/exchange'\n", "\n", "## Format string for timestamps\n", "#c.Exchange.timestamp_format = '%Y-%m-%d %H:%M:%S.%f %Z'\n", "\n", "## Timezone for recording timestamps\n", "#c.Exchange.timezone = 'UTC'\n", "\n", "#------------------------------------------------------------------------------\n", "# ExchangeCollect(Exchange) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Update existing submissions with ones that have newer timestamps.\n", "#c.ExchangeCollect.update = False\n", "\n", "#------------------------------------------------------------------------------\n", "# ExchangeFetch(Exchange) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Whether to replace missing files on fetch\n", "#c.ExchangeFetch.replace_missing_files = False\n", "\n", "#------------------------------------------------------------------------------\n", "# ExchangeList(Exchange) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## List assignments in submission cache.\n", "#c.ExchangeList.cached = False\n", "\n", "## List inbound files rather than outbound.\n", "#c.ExchangeList.inbound = False\n", "\n", "## Remove, rather than list files.\n", "#c.ExchangeList.remove = False\n", "\n", "#------------------------------------------------------------------------------\n", "# ExchangeRelease(Exchange) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Force overwrite existing files in the exchange.\n", "#c.ExchangeRelease.force = False\n", "\n", "#------------------------------------------------------------------------------\n", "# ExchangeSubmit(Exchange) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Whether or not to submit the assignment if there are missing notebooks from\n", "# the released assignment notebooks.\n", "#c.ExchangeSubmit.strict = False\n", "\n", "#------------------------------------------------------------------------------\n", "# BaseConverter(LoggingConfigurable) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Whether to overwrite existing assignments/submissions\n", "#c.BaseConverter.force = False\n", "\n", "## Permissions to set on files output by nbgrader. The default is generally read-\n", "# only (444), with the exception of nbgrader assign and nbgrader feedback, in\n", "# which case the user also has write permission.\n", "#c.BaseConverter.permissions = 0\n", "\n", "#------------------------------------------------------------------------------\n", "# Assign(BaseConverter) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Whether to create the assignment at runtime if it does not already exist.\n", "#c.Assign.create_assignment = False\n", "\n", "## Do not save information about the assignment into the database.\n", "#c.Assign.no_database = False\n", "\n", "#------------------------------------------------------------------------------\n", "# Autograde(BaseConverter) configuration\n", "#------------------------------------------------------------------------------\n", "\n", "## Whether to create the student at runtime if it does not already exist.\n", "#c.Autograde.create_student = False\n", "\n", "#------------------------------------------------------------------------------\n", "# Feedback(BaseConverter) configuration\n", "#------------------------------------------------------------------------------\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.1" } }, "nbformat": 4, "nbformat_minor": 2 }